gdk: Use stricter checks for begin_draw_frame()
authorBenjamin Otte <otte@redhat.com>
Thu, 24 Nov 2016 03:32:26 +0000 (04:32 +0100)
committerBenjamin Otte <otte@redhat.com>
Thu, 24 Nov 2016 03:43:42 +0000 (04:43 +0100)
We don't support drawing on child windows, so make sure nobody tries.

gdk/gdkwindow.c

index e39bfb16ed2a6c0dc2d9ba8a9a4884781a34d997..3f2d526b23a0a72eb7decfc97f19e3dc70f9d3c0 100644 (file)
@@ -2894,6 +2894,8 @@ gdk_window_begin_draw_frame (GdkWindow            *window,
   GdkDrawingContext *context;
 
   g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+  g_return_val_if_fail (gdk_window_has_native (window), NULL);
+  g_return_val_if_fail (gdk_window_is_toplevel (window), NULL);
 
   if (window->drawing_context != NULL)
     {
@@ -2903,8 +2905,7 @@ gdk_window_begin_draw_frame (GdkWindow            *window,
       return NULL;
     }
 
-  if (gdk_window_has_native (window) && gdk_window_is_toplevel (window))
-    gdk_window_begin_paint_internal (window, region);
+  gdk_window_begin_paint_internal (window, region);
 
   context = GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_draw_context (window, region);
 
@@ -2935,18 +2936,9 @@ gdk_window_end_draw_frame (GdkWindow         *window,
 {
   g_return_if_fail (GDK_IS_WINDOW (window));
   g_return_if_fail (GDK_IS_DRAWING_CONTEXT (context));
-
-  if (window->drawing_context == NULL)
-    {
-      g_critical ("The window %p has no drawing context. You must call "
-                  "gdk_window_begin_draw_frame() before calling "
-                  "gdk_window_end_draw_frame().", window);
-      return;
-    }
   g_return_if_fail (window->drawing_context == context);
 
-  if (gdk_window_has_native (window) && gdk_window_is_toplevel (window))
-    gdk_window_end_paint_internal (window);
+  gdk_window_end_paint_internal (window);
 
   window->drawing_context = NULL;